using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Xml.Serialization;
using System.Xml ;

namespace Parametritzacio
{
    public class Parametritzacio
    {
        private Banc bancDefecte= new Banc();
        private decimal descompte;
        private string dirExportacio;
        private int iVA;
        /// <summary>
        /// Exemple d'una llista de la clase del tipus banc
        /// Existeix el list sense tipus , si es fa servir l'objecte List
        /// </summary>
        private List<Banc> bancs=new List<Banc>();
        public Parametritzacio()
        {
        }
        public int IVA
        {
            get
            {
                return iVA;
            }
            set
            {
                iVA = value;
            }
        }

        public string DirExportacio
        {
            get
            {
                return dirExportacio;
            }
            set
            {
                dirExportacio = value;
            }
        }

        public decimal Descompte
        {
            get
            {
                return descompte;
            }
            set
            {
                descompte = value;
            }
        }

        public Banc BancDefecte
        {
            get
            {
                return bancDefecte;
            }
            set
            {
                bancDefecte = value;
            }
        }

        public List<Banc> Bancs
        {
            get
            {
                return bancs;
            }
        }
    /// <summary>
    /// Desa en el fitxer text.xml del mateix directori una copia de totes les
    /// dades d'aquesta clase
    /// </summary>
        public void Save()
        {
            // Insert code to set properties and fields of the object.
            XmlSerializer mySerializer = new
            XmlSerializer(typeof(Parametritzacio));
            // To write to a file, create a StreamWriter object.
            StreamWriter myWriter = new StreamWriter("text.xml");
            mySerializer.Serialize(myWriter, this);
            myWriter.Close();
        }
        /// <summary>
        /// Carrega en memoria les dades de la clase que s'han desat al fitxer text.xml
        /// Aquesta clase carrega i crea la memoria.
        /// Donat que es static la forma de fer servir es
        /// <code>
        /// Parametritzacio param=Parametritzacio.Load();
        /// </code>
        /// Fixeu que no cal fer un new a priori.
        /// </summary>
        /// <returns></returns>
        public static Parametritzacio Load()
        {
            XmlSerializer mySerializer = new
            XmlSerializer(typeof(Parametritzacio));
            // To write to a file, create a StreamWriter object.
            StreamReader myReader = new StreamReader("text.xml");
            Parametritzacio ret = (Parametritzacio) mySerializer.Deserialize(myReader);
            myReader.Close();
            return ret;
        }
    }
}
